package com.atguigu.jxc.controller;

import com.atguigu.jxc.domain.ServiceVO;
import com.atguigu.jxc.domain.SuccessCode;
import com.atguigu.jxc.entity.Supplier;
import com.atguigu.jxc.service.SupplierService;
import com.atguigu.jxc.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/supplier")
public class SupplierController {

    @Autowired
    private SupplierService supplierService;

    //http://localhost:8080/supplier/list
    //Integer page（当前页数）, Integer rows（每页显示的记录数）, String supplierName
    //分页查询供应商列表
    @PostMapping("/list")
    //前端传过来page=1,rows=30 默认的
    public Map<String,Object> getSupplier(Integer page, Integer rows,String supplierName){
        page=(page-1)*rows;
        List<Supplier> list=supplierService.getSupplierList(page,rows,supplierName);
        Map<String, Object> map = new HashMap<>();
        map.put("total",list.size());
        map.put("rows",list);
        return map;
    }

    /*
    请求URL：http://localhost:8080/supplier/save?supplierId=1
    请求参数：Supplier supplier
    请求方式：POST
    返回值类型： JSON
    返回值：ServiceVO
    重名不能添加，不能改相同名称
     */
    //供应商添加或修改
    @PostMapping("/save")
    public ServiceVO save( Supplier supplier){

        return supplierService.saveOrUpdate(supplier);
    }

    /*
   请求URL：http://localhost:8080/supplier/delete
   请求参数：String  ids
   请求方式：POST
   返回值类型：JSON
   返回值：ServiceVO
    */
    //删除
    @PostMapping("delete")
    public ServiceVO delete(String  ids){//传过来的可能是13,14,15也可能是单独一个13
        if (ids.contains(",")){
            String[] split = ids.split(",");
            for (int i = 0; i <split.length; i++) {
                supplierService.deleteById(Integer.parseInt(split[i]));
            }
            return new ServiceVO(SuccessCode.SUCCESS_CODE,SuccessCode.SUCCESS_MESS);
        }
        supplierService.deleteById(Integer.parseInt(ids));
        return new ServiceVO(SuccessCode.SUCCESS_CODE,SuccessCode.SUCCESS_MESS);
    }

    /*
    请求URL：http://localhost:8080/supplier/getComboboxList
    请求参数：String q（供应商名称模糊查询）
    请求方式：POST
    返回值类型：JSON
    返回值：List<Supplier>
     */
    //供应商下拉列表查询
    @PostMapping("getComboboxList")
    public List<Supplier> getComboboxList(String q){
        return supplierService.getComboboxList(q);
    }

    /*

     */
}
